Tunnels have been used for a number of applications such as the support of virtual private networks (VPNs) or Traffic Engineering following source routed paths hop-by-hop. Among the number of tunneling techniques developed over the past decade, multiprotocol label switching (MPLS) Traffic Engineering (TE) has been widely deployed by service providers and large enterprise networks in order to optimize the to network resource in light of specified traffic demand (traffic engineering) or in support of fast restoration of traffic in case of link and/or node failures thanks to local protection techniques as MPLS TE Fast Reroute that rely on local reroute upon fast detection of a network element failure.
Path computation elements (PCEs), as defined, for example, in the Internet Engineering Task Force's Request for Comment (RFC) 4655, generally consist of relying on an external engine (PCE) responsible for the computation of tunnels in the network. Head-ends (or Path Computation Clients—PCCs) send requests to PCEs (PCReq messages) using the PCEP signaling protocol (RFC 5440), and receive computed paths thanks to replies (PCRep messages). PCEP also specifies notification and error messages. PCEs have been used mostly for back-up tunnel path computation and inter-domain (Inter-area/AS) path computations where per-domain path computation was the only (potentially very sub-optimal) technique available prior to the PCE.
PCE-based networks deployed so far have been stateless. That is, tunnels were computed by the PCE according to the Traffic Engineering Database (TED) fed in most cases by the routing protocol without requiring any state maintenance. However, for certain applications, stateful PCE may provide a more optimal solution. A new stateful PCE draft has been adopted as an IETF Working Document, entitled “PCEP Extensions for Stateful PCE” <draft-ietf-pce-stateful-pce> by Crabbe et al., and which specifies several new PCEP messages, allowing PCCs to update the PCE on their tunnel states (PCRpt messages), control tunnel delegation (ability for the PCE to remotely control a tunnel) and for the PCE to send tunnel requests to PCCs to learn states (PCUpd messages). Stateful PCE architectures, however, still present a number of challenges of various natures.